﻿#include <iostream>
#include <vector>
#include <string>

using namespace std;

/*
给你一个字符串 s，找到 s 中最长的回文子串。

示例 1：
输入：s = "babad"
输出："bab"
解释："aba" 同样是符合题意的答案。

示例 2：
输入：s = "cbbd"
输出："bb"

示例 3：
输入：s = "a"
输出："a"

示例 4：
输入：s = "ac"
输出："a"
 
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/





class Solution {
public:
	void Check(const string& s, int i,string& ans) {
		int l = i; int r = i;
		while (l >= 0 && r < s.size() && s[l] == s[r]) {
			l--; r++;
		}
		int len = (r - 1) - (l + 1) + 1;
		if ( len > ans.size()) {
			ans = s.substr(l+1,len);
		}

		l = i; r = i + 1;
		while (l >= 0 && r < s.size() && s[l] == s[r]) {
			l--; r++;
		}
		len = (r - 1) - (l + 1) + 1;
		if (len > ans.size()) {
			ans = s.substr(l + 1, len);
		}
	}

	string longestPalindrome(string s) {
		string ans;
		
		for (int i = 0; i < s.size(); i++) {
			Check(s, i,ans);
		}

		return ans;
	}
};



//
//
//
//int main() {
//	Solution s;
//	cout << s.longestPalindrome("a");
//
//
//	return 0;
//}
//
//










